﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Utils
{
    public class GlobalUtilities
    {


        public bool checkEndAnalisys(byte[] databyte, int bytecheck, byte valuecheck)
        {
            if (databyte[bytecheck] == valuecheck)
            {
                return true;
            }

            else
            {
                return false;
            }

        }

        public string getAnalysisItem(byte[] databyte, int byteitem)
        {
            //return databyte[byteitem].ToString();
            //return (char)databyte[byteitem];         

            byte[] byteToConvert = new byte[1];
            byteToConvert[0] = databyte[byteitem];
            string hex = BitConverter.ToString(byteToConvert);
            return hex.Replace("-", "");
        }


        public int byteToValue(byte[] byteToConvert, int firstIndex, int secondIndex)
        {
            byte[] ordenedValue = new byte[2];
            ordenedValue[0] = byteToConvert[secondIndex];
            ordenedValue[1] = byteToConvert[firstIndex];
            int convertedValue = BitConverter.ToInt16(ordenedValue, 0);
            return convertedValue;
        }


        public bool checkDataSum(byte[] databyte, int checksumByteLenght)
        {
            byte[] dataToCheck = new byte[checksumByteLenght];
            byte[] dataToCompare = new byte[databyte.Length - checksumByteLenght];
            int bytesToCheckCount = 0;
            int byteSum = 0;


            for (int i = 0; i <= checksumByteLenght - 1; i++)
            {
                byteSum = byteSum + databyte[i];
            }

            for (int i = databyte.Length - 1; i >= checksumByteLenght; i--)
            {
                dataToCompare[bytesToCheckCount] = databyte[i];
                bytesToCheckCount++;
            }

            int valueToVerify = BitConverter.ToInt16(dataToCompare, 0);

            if (byteSum == valueToVerify)
            {
                return true;
            }
            else
            {
                return false;
            }

        }

    }
}
